package com.xh.web.service;


import com.xh.web.constant.AjaxResult;
import com.xh.web.domain.DProject;
import com.xh.web.domain.DProjectAuth;
import com.xh.web.domain.vo.ProjectVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 项目Service接口
 *
 * @author dongxuefei
 * @date 2020-09-06
 */
public interface IDProjectService
{
    /**
     * 查询项目
     *
     * @param id 项目ID
     * @return 项目
     */
    public DProject selectDProjectById(String id);


    /**
     * 查询首页项目
     *
     *
     * @return 项目
     */
    public List<ProjectVo>  selectAllProject(DProject dProject);


    /**
     * 查询项目列表
     *
     * @param dProject 项目
     * @return 项目集合
     */
    public List<DProject> selectDProjectList(DProject dProject);

    /**
     * 新增项目
     *
     * @param dProject 项目
     * @return 结果
     */
    public int insertDProject(DProject dProject);

    /**
     * 修改项目
     * @param id 项目id
     *
     * @return 更新项目
     */
    public int updateDProject(String id, DProject dProject );



    /**
     * 删除项目信息
     *
     * @param id 项目ID
     * @return 删除项目
     */
    public int deleteDProjectById(String id);

    /**
     * 项目转让
     *
     * @param id,User 项目id
     * @return 转让项目，更换创建人
     */
    //public int transfer(String id, SysUser user);



/**
 * 添加团队成员
 *
 * @param id 项目id
 * @return 添加团队成员
 */
//public int addmembers(String id, SysUser user);

    /**
     * 查询所有团队成员
     *
     * @param id 项目id
     * @return 成员集合
     */

   public List<DProjectAuth> selectMembers(String id);


    /**
     * 删除团队成员
     *
     * @param id 用户电话
     * @return 删除团队成员
     */
    public int deleteAuthById(String id);

    //通过projectCode查询项目
    public DProject selectDProjectByCode(String projectCode);

    //导入数据结构
    public AjaxResult importProject(String importJson);

    //同步数据结构
    public AjaxResult updateOrInsertProject(String id);

    //更新创建人，修改人信息
    public int updateUser(DProject dProject);

    public void syncInportDb(String importId,MultipartFile file);
}
